using System.Collections.Generic;

namespace Framework.StringSplit
{
    public interface IStringSplitFluent : IFluentConfigurable<IStringSplitFluent, IStringSplitConfigurationFluent>
    {
        string[] Split<TProcessor>(string text) where TProcessor : IStringSplitProcessor<string[]>;

        List<string> SplitAsList<TProcessor>(string text) where TProcessor : IStringSplitProcessor<List<string>>;

        List<KeyValuePair<string, string>> SplitAsKeyValuePairList<TProcessor>(string text) where TProcessor : IStringSplitProcessor<List<KeyValuePair<string, string>>>;
    }
}